草庐IT

Android JSONObject 与 GSON

全部标签

java - 使用 Gson 或 Jackson 反序列化 JSON 时忽略空字段

我知道有很多关于在将对象序列化为JSON时跳过空值字段的问题。在将JSON反序列化为对象时,我想跳过/忽略具有空值的字段。考虑类publicclassUser{Longid=42L;Stringname="John";}和JSON字符串{"id":1,"name":null}做的时候Useruser=gson.fromJson(json,User.class)我希望user.id为“1”,user.name为“John”。这是否可以通过Gson或Jackson以一般方式实现(没有特殊的TypeAdapter或类似的)? 最佳答案 很

java - 如何在 Gson 中制作自定义列表反序列化器?

我需要反序列化一个包含数组的Json文件。我知道如何反序列化它以便获得List对象,但在框架中我使用的是自定义列表对象,该对象未实现JavaList接口(interface)。我的问题是,如何为自定义列表对象编写反序列化程序?编辑:我希望反序列化器是通用的,这意味着我希望它对每一种列表都有效,比如CustomList,CustomList,CustomList不仅仅是一种特定类型的列表,因为为我使用的每种类型制作反序列化器会很烦人。 最佳答案 这是我想出的:classCustomListConverterimplementsJson

java - Google App Engine 上的 GSON 抛出安全异常

我正在尝试使用GoogleAppEngine上的GSON库将对象转换为JSON。出于某种原因,它抛出了这个异常,我不知道如何解决这个问题。有什么建议吗?java.lang.SecurityException:java.lang.IllegalAccessException:Reflectionisnotallowedonprivatestaticfinalintjava.util.BitSet.ADDRESS_BITS_PER_WORDatcom.google.appengine.runtime.Request.process-8d5b435d6736643f(Request.java

java - 为什么 Gson 序列化的是列表中的运行时类型,而不是指定的编译时类型?

为什么Gson在序列化的时候好像忽略了嵌套的泛型类型声明?我试图让Gson使用我指定的编译时类型,而不是列表中对象的运行时类型。我也在为A.java使用抽象父类(superclass),但下面的示例存在同样的问题。publicclassA{publicStringfoo;}publicclassBextendsA{publicStringbar;}publicstaticvoidmain(String[]args){Gsongson=newGson();Bb=newB();b.foo="foo";b.bar="bar";Listlist=newArrayList();list.add(

java - 如何将 JSON 对象从 Gson 转换为 POJO

我正在尝试使用GSON将JSON对象转换为POJO。JSON字符串[{"automation_project":{"user_id":null,"name":"UntitledProject","updated_at":"2015-06-16T19:39:42Z","group_id":764496,"created_at":"2014-11-23T01:01:59Z","id":16214}},{"automation_project":{"user_id":null,"name":"newintropage","updated_at":"2015-06-16T21:20:47Z",

java - 将 JSON 字符串转换为 JAVA 中的通用对象(使用 GSON)

我有一个返回JSON的Api。响应采用某种格式,可以适合名为ApiResult的对象并包含Context。和一个int代码。ApiResult以通用方式声明,例如ApiResult我想知道如何让GSON将传入的JSON字符串转换为ApiResult到目前为止我有:TypeapiResultType=newTypeToken>(){}.getType();ApiResultresult=gson.fromJson(json,apiResultType);但这仍然返回将Context转换为LinkedHashMap(我假设它是GSON回退到的) 最佳答案

java - 为什么 Gson 将 Integer 解析为 Double?

一个复杂的json字符串,我想将其转换为map,我有一个问题。请看这个简单的测试:publicclassTest{@SuppressWarnings("serial")publicstaticvoidmain(String[]args){MaphashMap=newHashMap();hashMap.put("data","{\"rowNum\":0,\"colNum\":2,\"text\":\"math\"}");MapdataMap=JsonUtil.getGson().fromJson(hashMap.get("data").toString(),newTypeToken>()

java - 使用 GSon 反序列化 Map<Object, Object>

我有一个包含多种类型的Map,就像这个简单的例子一样finalMapmap=newLinkedHashMap();map.put("a",1);map.put("b","a");map.put("c",2);finalGsongson=newGson();finalStringstring=gson.toJson(map);finalTypetype=newTypeToken>(){}.getType();finalMapmap2=gson.fromJson(string,type);for(finalEntryentry:map2.entrySet()){System.out.pri

java - GSON 是否应该被声明为 static final?

我在代码中使用JavaCallableFuture。下面是我的主要代码,它使用了future和callables-下面是我的主要代码,它使用了future和callables-publicclassTimeoutThread{publicstaticvoidmain(String[]args)throwsException{ExecutorServiceexecutor=Executors.newFixedThreadPool(5);Futurefuture=executor.submit(newTask());try{System.out.println(future.get(3,T

java - 使用 gson 库读取 json 文件

我有一个格式如下的json文件:[{'title':'Java','authors':['Auth','Name']},{'title':'Java2','authors':['Auth2','Name2']},{'title':'Java3','authors':['Auth3','Name3']}]所以我尝试使用gson库来解析文件,代码如下:JsonElementjelement=newJsonParser().parse(pathFile);JsonObjectjObject=jelement.getAsJsonObject();JsonArrayjOb=jObject.get